package com.star.sync.elasticsearch.dto.torderinfo;

import com.star.sync.elasticsearch.annotation.EsDataMapping;
import com.star.sync.elasticsearch.execute.torderinfo.TOrderInfoExecute;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * t_order_cast_calc_snapshot
 * @author 
 */
@Data
@EsDataMapping(indexName = "t_order_cast_calc_snapshot",tableName = "t_order_cast_calc_snapshot",type = "child")
public class TOrderCastCalcSnapshot extends TOrderInfoExecute<TOrderCastCalcSnapshot> {
    /**
     * id
     */
    private Integer id;

    /**
     * 表业务ID
     */
    private String code;

    /**
     * 运单主表业务ID
     */
    private String orderCode;

    /**
     * 线路货物（运费）计算规则表ID
     */
    private Integer lineGoodsCarriageRuleId;

    /**
     * 计算规则名称
     */
    private String ruleName;

    /**
     * 货物类型
     */
    private String goodsType;

    /**
     * （计算使用的）货值单价
     */
    private BigDecimal goodsUnitPrice;

    /**
     * （计算使用的）运费单价
     */
    private BigDecimal carriageUnitPrice;

    /**
     * 线路货物（运费）单价变动表ID
     */
    private Integer lineGoodsCarriageChangeId;

    /**
     * 实发数量
     */
    private Double realDeliverWeight;

    /**
     * 实收数量
     */
    private Double realDispathWeight;

    /**
     * 亏吨/涨吨
     */
    private Double loseOrRise;

    /**
     * 亏损重量 add by zhangjiji 2019/6/5
     */
    private Double deficitWeight;

    /**
     * 容忍值1（按系数
     */
    private Double tolerantValueCoefficient;

    /**
     * 容忍值2（按吨数
     */
    private Double tolerantValueWeight;

    /**
     * 亏吨扣款表达式
     */
    private String lossCutExpression;

    /**
     * 涨吨扣款表达式
     */
    private String riseCutExpression;

    /**
     * 亏吨涨吨扣款
     */
    private BigDecimal loseOrRiseCut;

    /**
     * 扣水吨数
     */
    private BigDecimal goodsCutWater;

    /**
     * 扣杂吨数
     */
    private BigDecimal goodsCutImpurities;

    /**
     * 固定扣款金额
     */
    private BigDecimal fixCutFee;

    /**
     * 固定扣款备注
     */
    private String fixCutRemark;

    /**
     * 其他扣款金额1
     */
    private BigDecimal otherCutFee1;

    /**
     * 其他扣款金额2
     */
    private BigDecimal otherCutFee2;

    /**
     * 其他扣款金额3
     */
    private BigDecimal otherCutFee3;

    /**
     * 其他扣款金额4
     */
    private BigDecimal otherCutFee4;

    /**
     * 其他扣款备注1
     */
    private String otherCutRemark1;

    /**
     * 其他扣款备注2
     */
    private String otherCutRemark2;

    /**
     * 其他扣款备注3
     */
    private String otherCutRemark3;

    /**
     * 其他扣款备注4
     */
    private String otherCutRemark4;

    /**
     * （亏吨）应付运费表达式
     */
    private String lossPayableExpression;

    /**
     * （涨吨）应付运费表达式
     */
    private String risePayableExpression;

    /**
     * （计算使用的）抹零规则
     */
    private String carriageZeroCutPaymentRule;

    /**
     * 抹零规则对应的抹零金额
     */
    private BigDecimal carriageZeroCutPayment;

    /**
     * 规则计算的应付运费金额
     */
    private BigDecimal carriagePayment;

    /**
     * 用户确认的应付运费金额
     */
    private BigDecimal userConfirmCarriagePayment;

    /**
     * 发货磅单图片路径
     */
    private String deliverWeightNotesPhoto;

    /**
     * 收货磅单图片路径
     */
    private String receiveWeightNotesPhoto;

    /**
     * 发货磅单上的时间
     */
    private Date deliverWeightNotesUploadTime;

    /**
     * 收货磅单上的时间
     */
    private Date receiveWeightNotesUploadTime;

    /**
     * 结算重量
     */
    private BigDecimal settledWeight;
    /**
     * 行数据可用性
     */
    private Boolean dataEnable;

    /**
     * 备注
     */
    private String remark;

    /**
     * 扩展字段1
     */
    private String param1;

    /**
     * 扩展字段2
     */
    private String param2;

    /**
     * 扩展字段3
     */
    private String param3;

    /**
     * 扩展字段4
     */
    private String param4;

    /**
     * 创建人
     */
    private String createUser;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新人
     */
    private String updateUser;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 是否删除 : 1 true 已删除   ||||   0 false 未删除
     */
    private Boolean enable;

    /** 扣水是否计算货值单价  */
    private Boolean cutWaterIsCalcvalue;
    /**  扣杂是否计算货值单价 */
    private Boolean cutImpuritiesIsCalcvalue;



    @Override
    public TOrderCastCalcSnapshot update(TOrderCastCalcSnapshot tOrderCastCalcSnapshot) {
        return null;
    }

    @Override
    public TOrderCastCalcSnapshot delete(TOrderCastCalcSnapshot tOrderCastCalcSnapshot) {
        return null;
    }
}